Alteryxでパレート分析をしてみよう
こんにちは、小澤です。
今日も楽しくAlteryxで分析ライフをエンジョイしていきましょう。 本日のテーマはパレート分析です。
パレート分析とは
冒頭でパレードだ!ということで楽し気な雰囲気を醸し出してみましたが、 楽しいお祭り行列のパレードと、今回解説するパレート分析には何の関係もありません。
世の中にはパレートの法則というものがあります。 これは80:20の法則とも言われ、全体での数値のうち、それをたたき出しているのは構成する要素の2割程度のものによるとる、という法則となっています。
よくわからないですね。 これをビジネスシーンで考えてみると、以下のような状況となります。
- 売上の8割は2割の顧客によってもたらされている
- 売上の8割は2割の商品によるもの
これによって優良顧客や売れ筋商品といったものの絞り込みに利用できるわけです。
実際には厳密に8:2になるわけではありませんがおおよそこのくらいの割合で分布するパターンが世の中に多くあることがわかっています。 これがパレートの法則となります。
パレート分析では、このような法則を考え方を利用して構成要素をいくつかのカテゴリに分けたうえで、 それぞれのカテゴリ単位でそこに含まれる要素に対してどのような施策を行うかを決定するための分析となります。 パレート分析を行う際には以下のようなグラフを作成します。
棒グラフが全体を構成する各要素となります。 ここでは、製品のカテゴリごとの売り上げを降順に並べたものを利用しています。
折れ線グラフは左側の項目から順に売上を合計して行った時のその項目までの全体に対する割合となります。 この図ではは事務機器単体の売上が占める割合は約15%、事務機器+電話と通信で約30%であることがわかります。
データがパレートの法則にしたがっているものであれば、左から2割までのカテゴリでの折れ線が80%に到達するわけです。 この図では、80%に至るのは本箱までとなっており、全体の約半分の商品までで80%に到達します。
パレート分析ではこの図を見て累積割合ごとにいくつかのランクに分けます。 例えば、~70%まではA, 70~90%はB, 90%~はCといった分け方をします。
そして、Aランク主戦力商品なので売り場に占める割合を増やすなどしていく、BランクはAランクとなるような育成を行っていく、Cランクは在庫が掃けたら取り扱いをやめる、などそれぞれに対して何を行うかを決定していきます。
パレート分析はこのように3つのランクに分けて取り扱い方法を決めることが多いため、ABC分析と呼ばれることもあるようです。
Alteryxでやってみる
では、Alteryxでやってみましょう。 今回作成するワークフローは以下のようになります。
まず利用するデータを読み込みます。 今回のワークフローでは、以下のデータの"Orders"シートを利用しています。
まずはInputツールからのびる上側のフローを見ていきます。
Summarizeツールを使って集計単位である"製品サブカテゴリー"ごとに売り上げの合計を求めます。
続いて、このデータを売上の降順でソートします。
ここまでで、棒グラフを描画するのに必要な各製品サブカテゴリーごとの売上が求まりました。 あとは、累積の割合を求めます。まずはRunning Totalツールを使って累積和を計算します。
この値の列名をわかりやすくするために、Selectツールで"累積売上"に変更します。
続いて、割合を計算するために売上全体の和を求めるのが、Input Dataから下側にのびたSummarizeツールです。 これは、グループ化せずにそのまま合計を求めるだけです。
Append Fieldツールを使って、全体の売上を先ほどのデータの全ての行に結合したのち、個別の累積売上をその値で割って、比率を求めます。
これで以下のような形式で必要なデータが出そろいました。
データが出そろったので、Interfactive Chartを使ってグラフを作成します。 棒グラフ側はX軸を製品サブカテゴリー、Y軸を売り上げとして通常と同様に作成します。
折れ線グラフ側も同様にX軸を製品カテゴリー、Y軸を累積構成比とするのですが一番下にある「Use Secondary Y-Axis」にチェックを入れます。
パレート図では、棒グラフと折れ線グラフで値の範囲が異なるため、折れ線グラフは右側にもう一つ別な軸を用意するわけです。 これで以下のようなグラフが作成されます。
あとは、お好みに合わせて調整することで、最初に紹介したようなグラフとなります。
おまけ
Alteryxでランク分け
パレート分析では、この情報をもとにABCとランク分けします(必ずしも3つである必要はありません)。
どのような基準値で分けるかというのはグラフを見ながら決定していくわけですが、 Alteryxではデータの分布からそれを行ってくれるツールがあります。 それがTileツールです。実際にTileツールの動きを見てみましょう。
先ほどのワークフローの最後に以下のようなTileツールを使ったものを追加します。
Tileツールの設定は以下のようになっています。
Tileツールでは、データの件数が均等になるようにn個に分割したりなどが可能ですが、SmartTileというものを使うことで分布に基づいて分割してくれます。
実際に利用すると以下のようなデータが生成されます。
Tile_Numが対象のランクとしても利用可能で、平均値付近が0, そこから離れるほどプラスマイナス双方向に大きな値となっていきます。
これの結果に対して、0であればB, 1以上であればA, -1以下であればCのように割り振って、わかりやすくするためにランク情報を付与したパレート図が以下のようになります。
この図ではAの範囲が約73%まで、Bの範囲が約97%までとなっているので、Bの範囲が多すぎる気もします。 この結果をそのまま使うだけでなく多少調整の必要な場面も出てきますが、目星をつけるのに利用できるでしょう。
Tileツールの動きの詳細については、以下をご参照ください。
パレート分析とロングテール
この手の話でセットで付随するのがロングテールの話になります。 この話の前提として、なぜ商品に対してパレート分析でランク付けしたのかを考えてみましょう。 先ほどランクがCの商品などは取り扱いをやめるなどの対策が考えられると書きました。 これは、売り場面積は固定となるためその中で最も効率よく売上を伸ばす商品配置が求められるためです。
例えば、本屋であればドラゴンボールと医学の専門書、どちらが多く売れるかを考えるのはナンセンスですが本屋としてはより売上が高くなる配置をしたいです。 そうなると、人気の書籍は大量に平積みする一方、誰かが買ってくれるのを隅っこの本棚でひっそりと待ち続ける商品をいつまでも置いておくには、店側が先に待ちきれなくなります...
そのため、こういった店舗では何を置いて、何を置かないかも考える必要があるわけです。 もちろん、商店街の本屋と比較して医大の近くの本屋は医学書が売れるなどの傾向は考えられるため、「この本は売れるだろ」みたいな、直感だけでなく実際に分析は必要ではなります。
さて、ここで物理的な店舗ではなくオンラインのECサイトを考えてみましょう。 サイト上では、売り場の面積という概念は存在しません。 めったに売れない商品であれば、ラインナップとしてサイト上に表示させつつ注文が入ったらそこなら入荷するということも可能です。出せる商品数はほぼ無限になります。
そうなったときにある面白い事象が起きのがロングテールとなります。 めったに売れない大量の商品の売上を全部かき集めると主力商品と同等かそれ以上になる、という状況になったのです。
例を挙げてみましょう。 簡単のため、すべての商品が1個1000円という状況としておきます。 最も売れる商品は100万個、最も売れない商品1個しか売れません。 商品の種類は全部で1000万個あります。実店舗では取り扱える商品に限りがあるので売れるものを選びますが、EC2サイトでは「とりあえず全部扱います!」としたとします。 この時、1個しか売れない商品が200万個あったとしても、それらを足し合わせると、最も売れる商品単体より2倍の売上となります。
このように項目数がグラフとして書ききれないくらい大量になった時、 棒グラフの縦軸の高さはほとんどないけど、それらの項目数の横軸が恐ろしく長い、 という状況を売れ筋商品部分を頭、売れない商品を尻尾と見立てて、とてつもなく長い尻尾なのでロングテールと呼ばれるようになったわけです。
ロングテールのような状況は常に発生するわけでありませんが、扱う領域によって考慮する必要があります。
おわりに
今回はAlteryxでパレート図を作成する方法を紹介しました。 パレート分析で儲けてパレードしましょう!
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。